/**
 * Copyright &copy; 2012-2016 <a href="https://github.com/thinkgem/jeesite">JeeSite</a> All rights reserved.
 */
package com.thinkgem.jeesite.modules.hk.shop.entity.product;

import com.google.common.collect.Lists;
import com.thinkgem.jeesite.modules.hk.shop.entity.brand.HkShopBrand;
import com.thinkgem.jeesite.modules.hk.shop.entity.category.HkShopCategory;
import com.thinkgem.jeesite.modules.hk.shop.entity.category.HkShopCategoryColor;
import com.thinkgem.jeesite.modules.hk.shop.entity.category.HkShopCategorySpec;
import com.thinkgem.jeesite.modules.hk.shop.entity.property.HkShopPropertyValue;
import org.hibernate.validator.constraints.Length;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;

import com.thinkgem.jeesite.common.persistence.DataEntity;

/**
 * 乐购商品Entity
 * @author 罗天文
 * @version 2018-05-16
 */
public class HkShopProduct extends DataEntity<HkShopProduct> {
	
	private static final long serialVersionUID = 1L;
	private HkShopBrand brand;		// 品牌
	private String categoryPid;		// 父分类
	private HkShopCategory category;		// 分类
	private String title;		// 名称
	private String subtitle;		// 副标题
	private String listing;		// 包装清单
	private String parameter;		// 商品参数
	private String state;		// 状态
	private String afterService;		// 售后服务
	private String imgSrc;		// 商品主图
	private String integral;		// 乐币
	private String descript;		// 描述
	private Date upshelfTime;		// 上架时间
	private Date downshelfTime;		// 下架时间
	private String isnew;		// 是否新品
	private String keywords;		// 关键字
	private List<HkShopProductProperty> hkShopProductPropertyList = Lists.newArrayList();		// 商品属性子表列表
	private List<HkShopProductImages> hkShopProductImagesList = Lists.newArrayList();		// 产品图片子表列表
	private List<HkShopProductSku> skusList = Lists.newArrayList();		// sku子表列表


	private List<HkShopProductSpec> specsList = Lists.newArrayList();		// 商品规格子表列表

	private List<HkShopProductColor> colorsList = Lists.newArrayList();		// 颜色子表列表

	private List<HkShopCategorySpec> categoryspecsList = Lists.newArrayList();		// 分类规格子表列表

	private List<HkShopCategoryColor> categorycolorsList = Lists.newArrayList();		// 分类颜色子表列表


	public List<HkShopCategorySpec> getCategoryspecsList() {
		return categoryspecsList;
	}

	public void setCategoryspecsList(List<HkShopCategorySpec> categoryspecsList) {
		this.categoryspecsList = categoryspecsList;
	}

	public List<HkShopCategoryColor> getCategorycolorsList() {
		return categorycolorsList;
	}

	public void setCategorycolorsList(List<HkShopCategoryColor> categorycolorsList) {
		this.categorycolorsList = categorycolorsList;
	}

	public List<HkShopProductSpec> getSpecsList() {
		return specsList;
	}

	public void setSpecsList(List<HkShopProductSpec> specsList) {
		this.specsList = specsList;
	}

	public List<HkShopProductColor> getColorsList() {
		return colorsList;
	}

	public void setColorsList(List<HkShopProductColor> colorsList) {
		this.colorsList = colorsList;
	}

	public List<HkShopProductSku> getSkusList() {
		return skusList;
	}

	public void setSkusList(List<HkShopProductSku> skusList) {
		this.skusList = skusList;
	}



	public List<HkShopProductImages> getHkShopProductImagesList() {
		return hkShopProductImagesList;
	}

	public void setHkShopProductImagesList(List<HkShopProductImages> hkShopProductImagesList) {
		this.hkShopProductImagesList = hkShopProductImagesList;
	}

	public List<HkShopProductProperty> getHkShopProductPropertyList() {
		return hkShopProductPropertyList;
	}

	public void setHkShopProductPropertyList(List<HkShopProductProperty> hkShopProductPropertyList) {
		this.hkShopProductPropertyList = hkShopProductPropertyList;
	}

	public HkShopProduct() {
		super();
	}

	public HkShopProduct(String id){
		super(id);
	}

	public HkShopBrand getBrand() {
		return brand;
	}

	public void setBrand(HkShopBrand brand) {
		this.brand = brand;
	}
	
	@Length(min=0, max=32, message="父分类长度必须介于 0 和 32 之间")
	public String getCategoryPid() {
		return categoryPid;
	}

	public void setCategoryPid(String categoryPid) {
		this.categoryPid = categoryPid;
	}
	
	public HkShopCategory getCategory() {
		return category;
	}

	public void setCategory(HkShopCategory category) {
		this.category = category;
	}
	
	@Length(min=0, max=200, message="名称长度必须介于 0 和 200 之间")
	public String getTitle() {
		return title;
	}

	public void setTitle(String title) {
		this.title = title;
	}
	
	@Length(min=0, max=200, message="副标题长度必须介于 0 和 200 之间")
	public String getSubtitle() {
		return subtitle;
	}

	public void setSubtitle(String subtitle) {
		this.subtitle = subtitle;
	}
	
	@Length(min=0, max=1000, message="包装清单长度必须介于 0 和 1000 之间")
	public String getListing() {
		return listing;
	}

	public void setListing(String listing) {
		this.listing = listing;
	}
	
	@Length(min=0, max=1000, message="商品参数长度必须介于 0 和 1000 之间")
	public String getParameter() {
		return parameter;
	}

	public void setParameter(String parameter) {
		this.parameter = parameter;
	}
	
	@Length(min=0, max=1, message="状态长度必须介于 0 和 1 之间")
	public String getState() {
		return state;
	}

	public void setState(String state) {
		this.state = state;
	}
	
	@Length(min=0, max=2000, message="售后服务长度必须介于 0 和 2000 之间")
	public String getAfterService() {
		return afterService;
	}

	public void setAfterService(String afterService) {
		this.afterService = afterService;
	}

	public String getImgSrc() {
		return imgSrc;
	}

	public void setImgSrc(String imgSrc) {
		this.imgSrc = imgSrc;
	}

	@Length(min=0, max=11, message="乐币长度必须介于 0 和 11 之间")
	public String getIntegral() {
		return integral;
	}

	public void setIntegral(String integral) {
		this.integral = integral;
	}
	
	public String getDescript() {
		return descript;
	}

	public void setDescript(String descript) {
		this.descript = descript;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getUpshelfTime() {
		return upshelfTime;
	}

	public void setUpshelfTime(Date upshelfTime) {
		this.upshelfTime = upshelfTime;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getDownshelfTime() {
		return downshelfTime;
	}

	public void setDownshelfTime(Date downshelfTime) {
		this.downshelfTime = downshelfTime;
	}
	
	@Length(min=0, max=1, message="是否新品长度必须介于 0 和 1 之间")
	public String getIsnew() {
		return isnew;
	}

	public void setIsnew(String isnew) {
		this.isnew = isnew;
	}
	
	@Length(min=0, max=200, message="关键字长度必须介于 0 和 200 之间")
	public String getKeywords() {
		return keywords;
	}

	public void setKeywords(String keywords) {
		this.keywords = keywords;
	}
	
}